#ifndef ERR_HAND_H_
#define ERR_HAND_H_

static debug_mode_active = 0;

/* Errors */
#define ERR_MEM_ALLOC_FAIL "Memory Allocation Failure"
#define ERR_PCB_INSERT_FAIL "Could not locate appropriate queue to insert PCB"
#define ERR_PCB_SEARCH_FAIL "Could not find the specified PCB"

#define ERR_PROC_NAME_EXISTS "Cannot create process: already exists"
#define ERR_PROC_NAME_TOO_LONG "Cannot create process: names cannot exceed 8 characters"
#define ERR_PROC_NAME_INVALID "Cannot create process: invalid name"
#define ERR_PROC_INVALID_PRIORITY "Process priority must be between -128 and 127"
#define ERR_PROC_INVALID_CLASS "Cannot create process: class must be either SYS or APP"

#define ERR_TERMINAL_READ_FAIL "Could not get input from the terminal"
#define ERR_NULL_PTR "Encountered an unexpected null pointer"

/* Warnings */
#define WARN_EXAMPLE "Example Warning"
#define WARN_PROC_NOT_CREATE "Process not created"

void mpx_warning(char *error, char *debug_message);
void mpx_error(char *error, char *debug_message);
void mpx_assert(int test, char *debug_message);
void mpx_debug(char *debug_message);

#endif /* ERR_HAND_H_ */